package cn.ichiva.tushare.analysis.data.国内宏观.利率数据;


import cn.ichiva.tushare.analysis.Config;
import cn.ichiva.tushare.sdk.common.DateUtils;
import cn.ichiva.tushare.sdk.tushare.TuClient;
import cn.ichiva.tushare.sdk.tushare.TuDataCacheAble;
import cn.ichiva.tushare.sdk.tushare.entity.TuRequest;

import java.util.HashMap;
import java.util.LinkedHashMap;

/**
 * SHIBOR利率数据
 *
 * 上海银行间同业拆放利率（Shanghai Interbank Offered Rate，简称Shibor），
 * 以位于上海的全国银行间同业拆借中心为技术平台计算、发布并命名，
 * 是由信用等级较高的银行组成报价团自主报出的人民币同业拆出利率计算确定的算术平均利率，
 * 是单利、无担保、批发性利率。目前，对社会公布的Shibor品种包括隔夜、1周、2周、1个月、3个月、6个月、9个月及1年。
 *
 * Shibor报价银行团现由18家商业银行组成。
 * 报价银行是公开市场一级交易商或外汇市场做市商，
 * 在中国货币市场上人民币交易相对活跃、信息披露比较充分的银行。
 * 中国人民银行成立Shibor工作小组，
 * 依据《上海银行间同业拆放利率（Shibor）实施准则》确定和调整报价银行团成员、监督和管理Shibor运行、规范报价行与指定发布人行为。
 *
 * 全国银行间同业拆借中心受权Shibor的报价计算和信息发布。
 * 每个交易日根据各报价行的报价，剔除最高、最低各4家报价，
 * 对其余报价进行算术平均计算后，
 * 得出每一期限品种的Shibor，并于11:00对外发布。
 *
 * 获取2000年到现在的所有数据
 */
public class Shibor extends TuDataCacheAble {

    public Shibor(TuClient client) {
        super(client);

        TuRequest request = new TuRequest();
        request.setApi("shibor");
        request.setDescribe("shibor利率");

        HashMap<String,String> paramsMap = new HashMap<>();
        paramsMap.put("start_date","20100101");
        paramsMap.put("end_date", DateUtils.lastTUDateString());
        request.setParams(paramsMap);

        LinkedHashMap<String,String> fieldMap = new LinkedHashMap<>();
        fieldMap.put("date","日期");
        fieldMap.put("on","隔夜");
        fieldMap.put("1w","1周");
        fieldMap.put("2w","2周");
        fieldMap.put("1m","1个月");
        fieldMap.put("3m","3个月");
        fieldMap.put("6m","6个月");
        fieldMap.put("9m","9个月");
        fieldMap.put("1y","1年");

        
        request.setFieldMap(fieldMap);
        setRequest(request);
    }

    public static void main(String[] args) {
        new Shibor(new TuClient(Config.url, Config.token))
                .get().ifPresent(System.out::println);
    }
}
